package com.weitu.train.record.mapper;

import com.weitu.train.record.entity.Record;
import com.weitu.train.record.entity.RecordUser;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author Sun
 * date 2017/05/09 15:19
 */
public interface RecordMapper {
    /** 
     * 根据ID删除
     * @param id 主键ID
     */
    int deleteById(@Param("id") String id);

    /** 
     * 添加对象所有字段
     * @param record 插入字段对象(必须含ID）
     */
    int insert(Record record);

    /** 
     * 添加对象对应字段
     * @param record 插入字段对象(必须含ID）
     */
    int insertSelective(Map<String, Object> record);

    /** 
     * 根据ID查询
     * @param id 主键ID
     */
    Record selectById(@Param("id") String id);

    /** 
     * 根据ID修改对应字段
     * @param record 修改字段对象(必须含ID）
     */
    int updateByIdSelective(Map<String, Object> record);

    /** 
     * 根据ID修改所有字段(必须含ID）
     * @param record 修改字段对象(必须含ID）
     */
    int updateById(Record record);

    int insertUser(Map<String, Object> map);
    int deleteUser(@Param("recordId") String recordId);

    List<Record> selectByPlanId(@Param("id") String id);



    int selectAllUserCountById(Map<String, Object> map);

    int deleteUserById(@Param("id") String id);

    List<RecordUser> selectAllUserListById(@Param("recordId") String recordId);
    List<RecordUser> selectAllUserById(Map<String, Object> map);

    List<Map<String,Object>> selectMyRecords(Map<String, Object> map);
    int selectMyRecordsCount(Map<String, Object> map);

    List<Record> selectAccount(Map<String, Object> map);
    int selectAccountCount(Map<String, Object> map);
}